#!/bin/sh

set -e

version="1.0"
InstallDir="/opt/Adobe AIR"
VersionDir="$InstallDir/Versions/$version"
ResourceDir="$VersionDir/Resources"
PATH="$ResourceDir/xdg-utils:$PATH"
XDG_UTILS_INSTALL_MODE="system"

if which kde-config >/dev/null 2>&1; then
    :
else
    PATH="$PATH:/opt/kde3/bin:/opt/kde4/bin:/opt/kde/bin"
fi

if [ -z "$XDG_DATA_DIRS" ]; then
    XDG_DATA_DIRS="/usr/share/:/usr/local/share/"

    if xdg_data_dir=`kde-config --prefix 2>/dev/null`; then
        XDG_DATA_DIRS="${XDG_DATA_DIRS}:${xdg_data_dir}/share/"
    fi

    if [ -x /opt/gnome/bin/gnome-open ]; then
        XDG_DATA_DIRS="${XDG_DATA_DIRS}:/opt/gnome/share/"
    fi

    export XDG_DATA_DIRS
fi

export PATH
export XDG_UTILS_INSTALL_MODE

InstallIcons()
{
    icon_dir="$1"

    for icon_size in 12 16 20 22 24 32 48 64 128; do
            xdg-icon-resource uninstall --noupdate --novendor --context apps --size $icon_size "$icon_dir/${icon_size}x${icon_size}/AdobeAIR.png"
            xdg-icon-resource uninstall --noupdate --novendor --theme gnome --context apps --size $icon_size "$icon_dir/${icon_size}x${icon_size}/AdobeAIR.png"
            xdg-icon-resource uninstall --noupdate --novendor --context apps --size $icon_size "$icon_dir/${icon_size}x${icon_size}/air.png"
            xdg-icon-resource uninstall --noupdate --novendor --theme gnome --context apps --size $icon_size "$icon_dir/${icon_size}x${icon_size}/air.png"
            xdg-icon-resource uninstall --noupdate --novendor --context mimetypes --size $icon_size "$icon_dir/${icon_size}x${icon_size}/air.png" 'application-vnd.adobe.air-application-installer-package+zip'
            xdg-icon-resource uninstall --noupdate --novendor --theme gnome --context mimetypes --size $icon_size "$icon_dir/${icon_size}x${icon_size}/air.png" 'application-vnd.adobe.air-application-installer-package+zip'
    done

    xdg-icon-resource forceupdate
}

InstallMimeType()
{
    xdg-mime uninstall --novendor "$ResourceDir/support/AdobeAIR.xml"
}

SetAsDefaultApplication()
{
    oldpwd="$PWD"
    cd "$ResourceDir/support"
    xdg-mime unset AdobeAIR.desktop 'application/vnd.adobe.air-application-installer-package+zip'
    cd "$oldpwd"
}

CheckUpdateAlternatives()
{
    env PATH="$PATH:/sbin:/usr/sbin" which update-alternatives >/dev/null 2>&1
}

InstallDesktopFile()
{
    env PATH="/usr/sbin:$PATH" update-alternatives --remove "Adobe_AIR_Application_Installer" "$VersionDir/Adobe AIR Application Installer"
    if env PATH="/usr/sbin:$PATH" update-alternatives --list; then
    :
    else
        env PATH="/usr/sbin:$PATH" update-alternatives --remove-all "Adobe_AIR_Application_Installer"
    fi

    rmdir -p "/opt/Adobe/Flash Player/AddIns/airappinstaller"
}


InstallDesktopFileOld()
{
    rm -f /usr/share/applications/AdobeAIR.desktop "/usr/bin/Adobe AIR Application Installer"
}


## Check if this runtime is the latest of all the installed
GetLatestVersion()
{
        ls -1Sr "$1" 2>/dev/null | (
                while read ver
                do
                        if [ -f "$1/$ver/Adobe AIR Application Installer" ]; then
                                echo "$ver"
                                return 0
                        fi
                done

                return 1
        )
}


IsLatestVersion()
{
    sxsVersion="1.0"

    if latest="`GetLatestVersion "$1"`"; then
        test "$latest" = "$sxsVersion"
        return $?
    else
        return 0
    fi
}


case "$1" in
    purge|remove|upgrade)

    CheckUpdateAlternatives && InstallDesktopFile >/dev/null 2>&1 || true

    if IsLatestVersion "$InstallDir/Versions"; then
        InstallIcons "$ResourceDir/support/icons" >/dev/null 2>&1 || true
        SetAsDefaultApplication >/dev/null 2>&1 || true
        InstallMimeType >/dev/null 2>&1 || true
        CheckUpdateAlternatives || InstallDesktopFile >/dev/null 2>&1 || true
    fi

    ;;

    failed-upgrade|abort-install|abort-upgrade|disappear)
    ;;

    *)
        echo "postrm called with unknown argument \`$1'" >&2
        exit 0
esac

exit 0

